package com.zmn.oms.dubbo.dto.common.work;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 类描述：
 *
 * @author xiangyang
 * @date 2018/12/13 17:01
 */
@Data
public class WorkListItemDRO implements Serializable {
    private Long orderId;                                // 订单id
    private Long workId;                                 // 工单id
    private Integer type;                                // 订单类型：1 新单、2 返修单、3 退款单
    private Integer grabType;                            // 抢单类型：1指派，2抢单
    private Integer status;                              // 工单状态
    private Integer resultStatus;                        // 结果状态
    private Integer servCategId;                         // 服务类型id
    private String servCategName;                        // 服务类型名称 清洗、维修等
    private String street;                               // 街道
    private String address;                              // 客户地址
    private Double longitude;                            // 经度
    private Double latitude;                             // 纬度
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date dutyTime;                               // 预约时间
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date takeTime;                               // 工程师接单时间
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date contactTime;                            // 联系用户时间
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date visitTime;                              // 工程师上门时间
    private Integer platWork;                            // 做单平台标志：1.言而有信 2.啄木鸟
    private Integer bizType;                             // 订单业务类型：1保外业务（C），2保内业务（F），3工程业务（B）
    private Integer sourceType;                          // 来源类型：1普通 2厂商 3大客户
    private Integer member;          	                 // 会员标识：1 非， 2 是
    private Integer standardPrice;                       // 标准收费标识 ：1 非， 2 是
    private Integer finalPrice;                          // 一口价标识 ：1 非， 2 是
    private Integer delivery;                            // 是否需要拉修（1：不需要，2：需要）
    private Integer waitPart;                            // 是否待件（1：否，2：是）
    private Integer waitCancel;                          // 是否待取消（1：否，2：是）
    private String productInfo;                          // 产品信息
    private Integer reviewFlag;                          // 是否需要工程师审核 1：否 2：是
    private Integer waitPartsPost;                       // 邮寄旧件  1：否 2：是
    private Integer waitFactoryReview;                   // 是否有配件等待厂家审核 1：否 2：是
    private Integer highValueUser;                       // 高价值用户   1：否 2：是
    private String channelName;                          // 渠道名称
    private Integer channelId;                           // 渠道id
    private String outerId;                              // 外部工单号
    private Integer servItemType;                        // 服务项类型，目前仅支持两种类型： 1.工单服务项 2.故障服务项
    private String categOneName;						  // 产品一级分类名称
    private Integer serviceCompleteReviewStatus;		  // 服务完成审核状态 1.待审核 2. 审核成功 3. 审核失败
    private Integer highValueOrder;                     // 优质订单  1：否，2：是
    private Integer highLevelEngineer;                  // 是否为高等级工程师
    // 完成工单用
    private Integer totalAmount;                         // 订单收入
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date completeTime;                           // 完成时间
    private Integer mainService;                         // 是否主工程师 1：否 2：是
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date accountTime;                          	 // 算账时间
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date failTime;                          	 // 失败时间
    private WorkSharingEstimateDRO sharingEstimate;      // 分润预估
    private Integer discountActivityId; // 活动id(迟到补偿活动id)， >0 表示符合迟到补偿配置，前端显示准时宝
    private Integer lateAmount; // 迟到补偿金额。 不为空，表示有迟到补偿金额
    private Integer vipChannel;	 //VIP渠道
    private String endPartRetailTime; //截至报销时间
    private Date receiveTime;//下单时间
    private Integer servProductGroupId;//产品组id
    private String  servProductGroupName;//产品组名字

    /**
     * 工单日程
     */
    private WorkProgrammeDRO programme;
    private Integer allowRefund; // 是否无忧退

    /**
     * 标签
     */
    private List<WorkTagDRO> tagList;

    /**
     * 是否发起收款，默认1不需要，2需要
     */
    private Integer multipleAmount;

    /**
     * 是否展示定金按钮，默认1不需要，2需要
     */
    private Integer showDeposit;

    /**
     * 最新的多次上门，默认0，多次上门状态
     * @see com.zmn.oms.common.constant.OrderVisitStatusConsts#ORDER_VISIT_STATUS_APPLY
     */
    private Integer multipleVisitStatus;

    /**
     * 上门支付子状态
     */
    private Integer multiplePayStatus;

    /**
     * 申请取消人类型
     */
    private Integer cancelApplyUserType;

    /**
     * 预估收入金额
     */
    private Integer forecastTotalAmount;

    /**
     * 列表显示时间
     */
    private String showTime;

    /**
     * 列表显示文本
     */
    private String showText;
}
